1
Искус гибких определений методов
AI035Lesson 4
00:00

Ruby повышает определения методов от жестких сигнатур до динамических интерфейсов. Освоив оператор распаковки оператора и логики выражений, мы создаем методы, которые плавно адаптируются к различной плотности данных без необходимости сложных перегрузок.

1. Умные значения по умолчанию и оператор распаковки

Ruby позволяет инициализировать параметры в сигнатуре, обеспечивая функциональность даже при минимальных данных. Оператор распаковки (*) выполняет роль моста: в параметрах он собирает дополнительные аргументы в массив; в вызовах он «разрывает» массив на отдельные позиции.

СБОР (Параметр)def f(a, *rest)f(1, 2, 3) →rest = [2, 3]РАЗРЫВ (Вызов)arr = [1, 2, 3]meth(*arr) →meth(1, 2, 3)

2. Возвращение значений на основе выражений

Методы Ruby автоматически возвращают значение последнего выполненного выражения. Однако ключевое слово return используется стратегически для преждевременного выхода или возврата нескольких значений в виде массива для параллельного присваивания.

num, sq = meth_three
# Ruby упаковывает (num, sq) в массив [32, 1024]
main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>